I have a device that requires 2amps and 4.5 volts. I wanted to use a GPIO pin from the rpi zero to power this device and switch it on and off. I am not sure what circuit to use, I was thinking of a MOSFET with a flyback diode in parrallel or was hoping a breakout board from something like Adafruit could work as well... any suggestions?
The rpi zero will not be able to supply 2amps from a GPIO pin (in fact it would have to be much higher to support a boost convertor to raise the 3.3v to 4.5v). The maximum per pin output is 16mA with a 50mA total. (see answer here What is the maximum current the GPIO pins can output?)
A better way of achieving this would be to use a transistor switched relay to switch a separate power supply for supplying power to your device. A transistor operated relay schematic is suggested in an answer on how to switch from an Arduino https://electronics.stackexchange.com/questions/81119/trouble-on-switching-a-3v-relay-with-arduino-digital-pins
N.B. The Arduino is capable of sourcing 40mA per pin. The circuit given in the answer referenced will have to be adapted to be used by an RPi which can only source 16mA.
It depend on the type of load. An inductive DC load, like a motor needs a flyback diode as you state in your question.
A MOSFET is a excellent idea, your only concern is that VGSon is below 3,3 volt (normaly called a TTL MOSFET). Or you have to add a transistor to drive the VGSon to the level that the MOSFET needs to be conducting.