Thanks @quew8, always nice getting positive feedback
No reply yet from @faustdonner but I think I will outline my solution in case anyone else views this thread.
I have thought about all of the items that @Kai and @quew8 have stated around distribution and such, and my idea was to precompute a distribution map following the rules that I came up with.
I have generated a 512x512 png file, white background, and different pixel colors representing tree types.
When generating this image I added in all the distribution rules, and eventually built up a good one.
On game start up, the image is parsed and the data is saved in memory.
My chunk sizes are 32x32x32, so out of the 512x512 map I create 256 data containers (16x16).
The trees have a max x,z (y is height, don't need to worry about that at this point) of 9x9, and these may cross over up to 4 chunks so I have to take that into account.
Once the containers are created, I parse the map, create a data structure for each tree, and place them into all of the chunk data containers that they will intersect with, so one tree may be in up to 4 chunk data containers.
I plan to extend this to contain more than just the trees, this map can contain a lot of data, its just a png so there is 3 color channels each with a ton of values that can represent anything you want.
I don't think this is the most optimal solution, but it works great for me, and I do believe pre-computing the distribution rules is saving a bit of processing time.
@faustdonner, good luck with the project, feel free to ask more questions if you have them.
Below is the first basic map that I generated, it has 3 shades of green representing 3 sizes of trees, as you can see its very simple.
Note that this doesn't contain any information on, what you call in minecraft, "Biomes", I have done that separately, and this map only comes into play when within a biome that contains the trees.