When I have a project that needs to be done, but I have a case of "druthers", I will mark a block of time on my day planner/calendar to work on it.
If I treat it like any other appointment that has a time slot, I will usually get wrapped up in it, and work longer than I had planned to.
If I don't finish, I will mark another time slot on the calendar and pick away at it until it's done.

Even if it's just one hour at a time, it will get done.
Then I reward myself with permission to work on something that is calling to me NOW!