First note that what has happened to you is a failure on the part of the academic community to ensure appropriate employment conditions for junior researchers. A PhD candidate is a junior researcher - someone who will do research work, albeit of a limited scope, and with initial meandering, and with some supervision - who should be paid.
This perception will also guide you regarding what to do about funding. If you ask Professors for a handout - because you're a nice guy with high grades - you'll probably not get it. You will essentially be asking to be "posted" in their group as an employee, in which case they will (hopefully) be inclined to pay you a salary already.
For every lab you're considering:
- Check, if you can do so easily and outright, whether the lab has paid/funded open positions. If you know that it doesn't - it's not relevant. (That is, since you didn't say you know what you want to do research-wise; otherwise most of my advice is irrelevant.)
- Make sure the research work there actually interests you. Otherwise you'll sort of be scamming them for your salary - which is quite legitimate considering the situation the university has put you in, but is psychologically difficult for all concerned. This means, in particular,
- Go visit the lab, physically. Try to arrange meetings with grad students and/or postdocs in the lab, to hear about what they're working on. This is common practice for new grad students and usually encouraged. During that visit (and not just then),
- Try to figure out how your experience can be relevant to what they're doing - or to something they're not doing, but would contribute to their research objectives. It can be either in advancing their research proper, or in building things, or using some software you're proficient in, or writing code, or using materials or processes you've had experience in etc.
- Now write your email, asking to meet with the PI to apply for the open position. Or, if you can schedule such a meeting directly when visiting the lab, based on some 'hook' of a suggestion from somebody there - that's even better. Base your pitch on your experience and conclusions from the previous phases.
Note these phases may not happen in this order, or in any order (i.e. these may overlap). Also, you probably want to parallelize this for different labs rather than go one-by-one.