Es poco lo que he usado python así que no se para que sirve, pero, leyendo esto, creo que te puede aclarar algo:
http://effbot.org/pyfaq/tutor-what-is-if-name-main-for.htmhttp://es.diveintopython.org/odbchelper_testing.htmlEn el segundo link que pongo dicen esto:
¿Por qué esta sentencia if en concreto es un truco? Los módulos son objetos, y todos los módulos tienen un atributo __name__ incorporado. El atributo __name__ de un módulo depende de cómo se utiliza el módulo. Si se importa con import, __name__ es el nombre del fichero del módulo, sin la ruta al directorio ni la extensión. Pero también puede ejecutarse un módulo directamente como programa independiente, y en este caso __name__ adquiere un valor especial, __main__.
Según lo que entiendo, cuando el modulo es ejecutado, su atributo __name__ toma el valor "__main__" y si tenemos varios modulos, podemos comprobar cuál es el que se ejecutó.
A mi criterio esto puede servir para por ejemplo si tienes el programa ejecutandose desde un pyc o un ejecutable y lo pasan como argumento a un debugger ya no sería el __main__ y podrías comprobarlo o cosas de ese estilo, pero, igualmente no estoy seguro, que alguien que sepa lo afirme o contradiga.
Saludos.