Many have posted regarding problem such as :
avrdude: Device signature = 0x000000
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.
when using Arduino as ISP.
I myself have had this problem and the solution in my case was that I tried to program a atmega328p previously mounted on an Arduino. What I did'nt take into consideration was that the fuses on the atmega328p wasn't configured to use the internal oscillator, which I tried to do. When I used an external crystal the problem was gone.
With AVR® Fuse Calculator – The Engbedded Blog you can easily find which arguments to pass to avrdude.
Hope this will help someone