There are lots of posts on how to make a password protected WordPress blog. I followed quite a few unsuccessfully (like this one).
Then I found a very simple way to password protect your self hosted WordPress blog:
Install the Absolute Privacy plugin.
The Absolute Privacy plugin lets only registered users of your blog view your blog posts. You can either create a login for each individual or you can create one generic login and hand out that login and password to everyone.
The disadvantage is that if people don’t have a login, it doesn’t send them to a place to request an account. You can however redirect them to any page you wish. So you could make a page that let’s people know how to contact you for a login.