import asyncio import concurrent.futures import os async def worker_coro(): print(f'Running coro in process {os.getpid()}') def worker(): loop = asyncio.get_event_loop() print(f'WORKER PID: {os.getpid()}, LOOP: {loop!r} at 0x{id(loop):x}') return loop.run_until_complete(worker_coro()) async def main(): executor = concurrent.futures.ProcessPoolExecutor(1) loop = asyncio.get_event_loop() print(f'PARENT PID: {os.getpid()}, LOOP: {loop!r} at 0x{id(loop):x}') return await loop.run_in_executor(executor, worker) loop = asyncio.get_event_loop() loop.run_until_complete(main())