import logging # if you remove these it works (!!!) from tornado.gen import coroutine from tornado.ioloop import IOLoop from multiprocessing import Pool import requests log = logging.getLogger('log') def work(): try: import threading print( 'worker', threading.enumerate() ) log.info(requests.get('http://cnn.com').status_code) print( 'worked done' ) except: import traceback; traceback.print_exc() def logsomething(): r = requests.get('https://testwerk.org/gunnar/t.json?query=-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------') # this needs to be of a certain length #@coroutine def test_process_pool(): logsomething() pool = Pool(1) pool.apply(work) print('ok') if __name__ == '__main__': # if you disable logging output it works! logging.basicConfig(level=logging.DEBUG) import multiprocessing multiprocessing.log_to_stderr() import threading print(threading.enumerate()) import sqlalchemy.orm test_process_pool()