Don't charge hourly, charge weekly or daily (if a week is too large of a unit). It will save you a lot of headaches and free you/her from time tracking at an annoyingly granular level. It also discourages clients from micromanaging your billing (which they definitely will do when you essentially turn in time sheets.)
When she's selling, the goal is to anchor your estimated price to the value of the project (you have to understand the client's business well enough to do this.) The idea is to frame your cost as a fraction of the total value. The rest of the sale is demonstrating you're low risk and that you can deliver. Typically you do this through social proof, or through a small starter project that demonstrates ROI.
Given that a contract is probably worth 50k+ to your wife, traditional sales approaches are probably a good fit. Unless she wants to do data-set building, I would assume that her target businesses are sophisticated enough to be keeping data. So start there, make a list of businesses that fit the profile, find contacts (put them in a spreadsheet) and start calling or emailing. No magic, just a grind and a lot of rejection.
In terms of a longer-term strategy, she might pursue some sort of content strategy and start funnelling traffic to her website that way. Some % of that will convert to leads and some % of those will convert to clients. Once you get that pipeline set up, you can spend infinite time optimizing whatever parts of that pipeline. I assume though, that in the short-term, she needs work now and not x months from now. "Traditional sales" are likely a better fit in that case.
She might also consider joining a referral network like BNI if there's a local chapter(s) that look like there are enough members that fit your target profile.
And as the other commenter mentioned, your first port of call should be friends and family. Don't harangue them for a sale, just let them know your shingle is out. Presumably some % of them want you to succeed and you'll probably get a lead or two kicked your way in fairly short order.
Networking is going to be key for customer acquisition. Keep a lookout for data science related conferences in your area, as that will attract attendees in the same field, who may have leads available as well.
You can also reach out to businesses directly by cold contacting, if you can't get a warm introduction. You'll get used to hearing no a lot, but that's a valuable experience in and of itself.
Some links I gathered: https://pinboard.in/u:pmigdal/t:freelancing. Plus, price negotiation is super important (way more than for regular jobs). I recommend "Ten Rules for Negotiating a Job Offer" https://medium.freecodecamp.org/ten-rules-for-negotiating-a-....
Look at https://brainpool.ai/ (they offered some good contracts). In general leveraging one's PhD and credentials is a good strategy.
I run a data science/analytics team at a large us-based tech company, so I'm on the buy-side of this. The bulk of contract work in the industry is run through staffing companies that market themselves as 'consulting' companies.
As a hiring manager, it's just too much of a hassle for me to individually source a good contractor. These staffing companies provide some level of screening & sourcing to make it easier for me.
However, if she really wants to try to contract directly... I would recommend searching linkedin for ~directors of analytics and data science at companies in the area/industry she's focused on. and then just ping them directly. I would guess the response rate would be in the 5-10% range, and then only a small fraction will convert to an actual contract.
Someone else mentioned it, but don't do this on an hourly basis. Daily or monthly.
"Ask HN: Who wants to be hired? (March 2019)"
On KDNuggets.com others post articles that teach and get their name out there, so Hitting the pavement is not about going to companies , unless you want to.