Is there a rule for choosing between the prepositions zu, in, bei, nach, an for a special place or does one have to memorize all of them?
An den See
First, one should note that bei is in general not used with verbs such like gehen, kommen or other words which would express an idea of movement. One would say:
Ich bin beim Arzt.
Ich gehe zum Arzt.
Now for a few guidelines about the other prepositions:
Nach is used when you go to a city, a country, or any other named inhabited settlement of region.
Wir haben uns entschieden, nach Frankreich zu fahren.
Zu is when your destination is a building.
Ich muss für dich zum Rathaus gehen, damit du dein Zertifikat endlich hast.
In is used when the idea to be in the place is important. A few examples, from the top of my head: "ins Meer", because you will swim in it, "ins Kino" because you want to watch a film in it, "ins Büro/ins Geschäft" because you go there to work. Note that the use of in and zu are very similar, and you nearly have to memorize which preposition to use in each case.
The use of an is quite difficult to define. I would say the most common use is when you want to go to some kind of border. 'See' and 'Küste' can be understood in this case as a border between land and water. This can be used naturally in the case you go there, but also when you are there.
An der Nordseeküste, am plattdeutschen Strand, ...
The other case I found is a figurative one:
An die Arbeit gehen : to get to work, to go down to business
To sum it up, those are guidelines, and unfortunately, in most of the cases, knowing which preposition to use gets only easier with how familiar you are with the language.
rough short rule...
location can be entered/has an entrance, masc. and fem. countries:
wohin - in + acc , wo - in + dat. , woher - aus
location cannot be entered, usually persons ALSO brand names like MC Donalds:
wohin - zu , wo - bei , woher - von
countries (neuter) , cities etc:
wohin - nach, wo - in, woher - aus
There are many examples that don't fit here like Markt (auf, zu) or Meer (an, zu). But chosing by the above stated rules your outcome will be at least second best.
nach Hause, zu Hause, von Zuhause
I write the following without any formal knowledge of language, but German is my mother tongue.
I will try to give you some examples how they could be used.
Many terms like "in das" have abbreviations. These abbreviations are rather used than to spell it out. Especially in spoken language, but I would also say in written language.
You're currently inside of something: - Ich bin im Haus - Ich bin in der Universität. - Ich bin im Tunnel. - Ich gehe im Kreis. (Activity-related, not position-related) But with some exceptions: - Ich bin auf dem Campus (der Universität).
Similar, you will say:
- Ich gehe ins Haus. - Ich fahre in den Tunnel
When you're with a person - Ich bin bei meinem Freund. - Ich war beim Arzt. When you're currently doing something (slang): - Ich bin beim lernen.
You're currently in place A, but you want to get to B: - Ich fahre nach Paris (bin aber gerade in London).
I don't see a rule here: - Ich bin an der Uni (eingeschrieben; momentan auf dem Campus) - Meine Zunge klebt an der Laterne
Similar to "nach", but "nach" is rather used for cities while "zu" is rather used for ... well, I think the rest - Ich fahre zu meinem Freund. - Ich fahre zum See. - Ich gehe zum Reiten (or better: Ich gehe reiten.)
From my own experience in learning the language, there is this small difference between the "rule" and the "used".
In the Germany language, you will find so many rules, and for EACH rule you definitely find an exception.
Being said, I would suggest you to learn the prepositions in the language in a context. Never translate it or just memorise it with one word.
Just like the others said, there are always rules/ways/patterns to use some prepositions with, but:
you will only come to understand them if you memorise just one sentence for each example.
For example, never learn "Beim Arzt" alone, learn: "ich bin beim Arzt", that would save you some time remembering when using "bei" here.
Now that if you learn the correct sentences, you will easily get the correct one, when you need it on the go (I am speaking from my own experience).