The very best time to learn a Spanish differs from person to person and with circumstances. Still, it is possible to create some useful generalizations.
The very best time to learn another language is as a child. If you learn a second or third language if you are young, before puberty, and you learn it from native speakers, you will learn how to speak it naturally, with no accent. A "foreign" accent arises from the difficulties of overcoming the facts of the manner in which you learned to speak your mother tongue.
Accents appear in those who learned a second language after puberty. Dr. Henry Kissinger, for example, speaks excellent English with a German accent. Although his familiarity with English is deep and thorough and his command of it is impeccable, he learned to speak English when he was 15, so his native German still comes through in his accent every time he speaks. You can even look for language teachers online, you can learn different languages yourself from various language teaching tutorials sources like http://www.inlinguautah.com/language-school/.
Apparently the "language centers" in the human brain take a "set" during puberty, lose flexibility and effectively dictate that the version of one's mother tongue that you learned as a kid is the only language you will truly have the ability to speak with no accent. Interestingly enough, philologists tell us that if you learn three languages before puberty, your language centers will remain adaptive and flexible. Whoever has learned three languages as a kid will have a way to learn a fourth or fifth language later in life, and learn how to speak it with no accent.