After many failed attempts I found this useful blog post at https://katiekodes.com. The following is what's relevant to my question.
Plus, if you’ve set up Pardot to leverage single-sign-on via Salesforce credentials, you can’t even get into the API without having a dedicated Pardot user whose “email address” isn’t the username of a user in the Salesforce org you have connected to Pardot.
And that is exactly what was causing my problem. So my solution was to create a new "dedicated" Pardot user with an alias that I set up for my email (any different email address will work).
As stated later in her blog post,
If you have Salesforce sign-on turned in, ignore all prompts from Pardot to choose a “CRM Username” for the user you just created.
Thanks, Katie Kodes!