I say after all shots are completed.. I didn't take Mia ( i was going to ) but its a waste of money and I'm taking classes to become a dog trainer, so I get to watch/teach classes for 21 weeks (starting September) so I'm just taking her then...
Normally the class or trainer has an age limit. Even more so a class. We have Odin in the "puppy education" class at PetSmart. He had to be up to date on all of his shots including having the bordetella shot. The first day of class we had to give them the papers showing that he had them. I've also read that you should wait to the puppy is 6 months old because something like they easily forget or don't train well... something like that. I pretty much brushed that idea off because Odin's been doing great... and you can easily teach a very young puppy things so it's not legit to me.
Puppy classes (after shots - so around 16 weeks) are great for socailization and a way for you to learn some training techniques. We did that with Chloe and then waited until she was about 7 months old to take her to a real obedience class.
I have heard various things. It really all depends on the facility (IMHO). I go to the Denver Dumbs Friend League. They have ventilators and sterlize the floors after every class. they accept puppies from 8 weeks to ten for puppy preschool and they have to be at least 12 weeks for puppy kindergarten. All dogs have to have their initial shots for acceptance, and boosters for the Kindergarten classes.