Capture Ctrl + C / SIGINT y salga de multiprocesos con gracia en Python

¿Cómo puedo capturar un Ctrl + C en el programa Python multiproceso y salir de todos los procesos con gracia? Necesito la solución para trabajar tanto en Unix como en Windows He intentado lo siguiente:

import multiprocessing
import time
import signal
import sys

jobs = []

def worker():
    signal.signal(signal.SIGINT, signal_handler)
    while(True):
        time.sleep(1.1234)
        print "Working..."

def signal_handler(signal, frame):
    print 'You pressed Ctrl+C!'
    # for p in jobs:
    #     p.terminate()
    sys.exit(0)

if __name__ == "__main__":
    for i in range(50):
        p = multiprocessing.Process(target=worker)
        jobs.append(p)
        p.start()

Y está funcionando, pero no creo que sea la solución correcta.

EDITAR: Esto podría ser un duplicado deéste

Respuestas a la pregunta(3)

Su respuesta a la pregunta