I am trying to program an application that runs a HTTP server as well as a GUI using Tornado and PyQt4 respectively.  I am confused about how to use these two event loops in parallel. Can this be done with the multiprocessing module? Should the HTTP server be run in a QtThread? Or is a bash script the best way to go to run both of these processes at the same time?
You won't need a bash script. Probably simplest to write a PyQt application and have the application launch the web server. The server may be in a separate thread or process depending on your requirements, but I'd start by having a single thread as a first draft and splitting it out later.
Having the PyQt app as your main thread makes sense as your GUI is going to be responsible for user inputs (start/stop server, etc) and program outputs (server status, etc) and therefore it makes sense to make this the controlling thread with references to other objects or threads.
How can I combine PyQt4 and Tornado's event loops into one application?