I build the circuit, uploaded the ArduinoISP example onto the Arduino UNO, and it looks like the heartbeat led is working, as per this tutorial: https://www.arduino.cc/en/tutorial/arduinoISP
I'm stuck at step 3 of the first tutorial:
Select "Arduino Duemilanove or Nano w/ ATmega328" from the Tools > Board menu. (Or "ATmega328 on a breadboard (8 MHz internal clock)" if using the minimal configuration described below.)
Those board types aren't in the listed in my Arduino IDE (1.8.5), here's a screenshot of what I do have:
I tried Arduino Duemilanove, but then I get stuff like:
avrdude: Device signature = 0x000000
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.
Not sure if it would be applicable to your problem, but did you connect a 10uF capacitor between reset and ground on the UNO being used as a programmer?
This is how you should place the crystal:
(but leave the decoupling capacitors next to the chip, I don't know why Nick Gammon moved them in that picture)
The 0.1 uF capacitors are the decoupling capacitors on the power lines to the ATmega328P. The 22 pF capacitors are the load capacitors for the crystal. In the picture above, you forgot the crystal load capacitors.