title: Python GUI stays frozen waiting for thread code to finish running
body: <p>I have a python GUI program that needs to do a same task but with several threads. The problem is that I call the threads but they don't execute parallel but sequentially. First one executes, it ends and then second one, etc. I want them to start independently.</p>
  
  <p>The main components are:<br>
   1. Menu (view)<br>
   2. ProcesStarter (controller)<br>
   3. Process (controller) </p>
  
  <p>The <strong>Menu</strong> is where you click on the "Start" button which calls a function at <strong>ProcesStarter</strong>.</p>
  
  <p>The <strong>ProcesStarter</strong> creates objects of <strong>Process</strong> and threads, and starts all threads in a for-loop. </p>
  
  <p><strong>Menu:</strong></p>
  
  <pre><code>class VotingFrame(BaseFrame):
  
    def create_widgets(self):
      self.start_process = tk.Button(root, text="Start Process", command=lambda: self.start_process())
      self.start_process.grid(row=3,column=0, sticky=tk.W)
  
    def start_process(self):
      procesor = XProcesStarter()
      procesor_thread = Thread(target=procesor.start_process())
      procesor_thread.start()
  </code></pre>
  
  <p><strong>ProcesStarter</strong>:</p>
  
  <pre><code>class XProcesStarter:
  
     def start_process(self):
         print "starting new process..."
  
         # thread count
         thread_count = self.get_thread_count()
  
         # initialize Process objects with data, and start threads
         for i in range(thread_count):
            vote_process = XProcess(self.get_proxy_list(), self.get_url())
            t = Thread(target=vote_process.start_process())
            t.start()
  </code></pre>
  
  <p><strong>Process:</strong></p>
  
  <pre><code>class XProcess():
  
      def __init__(self, proxy_list, url, browser_show=False):
          # init code
  
      def start_process(self):
          # code for process
  </code></pre>
  
  <p>When I press the GUI button for "Start Process" the gui is locked until both threads finish execution. 
  The idea is that threads should work in the background and work in parallel.</p>