title: Python 2.7 on Windows, "assert main_name not in sys.modules, main_name" for all multiprocessing examples
body: <p>There is following simple code:</p>
  
  <pre><code>from multiprocessing import Process, freeze_support
  
  def foo():
      print 'hello'
  
  if __name__ == '__main__':
      freeze_support()
      p = Process(target=foo)
      p.start()
  </code></pre>
  
  <p>It works good on Linux or Windows with Python 3.3, but fails on Windows with Python 2.7.</p>
  
  <pre><code>Traceback (most recent call last):
    File "&lt;string&gt;", line 1, in &lt;module&gt;
    File "c:\Python27\lib\multiprocessing\forking.py", line 346, in main
      prepare(preparation_data)
    File "c:\Python27\lib\multiprocessing\forking.py", line 454, in prepare
      assert main_name not in sys.modules, main_name
  AssertionError: thread
  </code></pre>
  
  <p>Generally speaking, all multiprocessing examples i tried fail on that setup. Why?</p>