Arduino Leonadrdo as ISP

Hi everyone,
I'm trying to upload on an Atmega328P-PU the blink example using Arduino Leonardo as ISP
I followed the instruction here (http://www.instructables.com/id/Arduino-Leonardo-as-Isp/).
I uploaded on the Leonardo the Arduino ISP sketch with no errors, I double checked all connections, etc...
When I try to upload the blink example using "avrdude -p m328p -c stk500v1 -P /dev/tty.usbmodem641 -b 19200 -e -U flash:w:./blink.hex" I get:

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.06s

avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.

Why do I get the signature is 0x000000 ?

Check your wiring, have you got a pull up on the reset, have you got an Oscillator (with caps if needed) fitted to the 328, have you connected all the grounds and all the power?

Yes, I have an external 16Mhz oscillator with two 22pF caps connected to ground, and a 10k pull-up resistor connected to the reset pin.

I noticed that on the Arduino uno R3 there is an Atmega16U2 to translate the data from USB to serial and vice versa, and it is connected to the reset, TX and RX pin of the Atmega328.
The Atmega16U2 is the microcontroller of the Arduino Leonardo. Maybe it is possible to write on the Leonardo the firmware of the uno's Atmega16U2, connect it to the exernal Atmega328, and then upload codes exactly as if they were uploaded on an Arduino uno.